#pragma once

#include <array>
#include <DirectXMath.h>
#include "Common.hpp"



struct Aabb1
{
public:
    Aabb1(float minX, float minY, float minZ, float maxX, float maxY, float maxZ);
    GeometryState IntersectWithPlane(DirectX::XMVECTOR plane) const;
    bool ContainsBy(const std::array<DirectX::XMVECTOR, 6>& planes) const;

private:
    std::array<float, 3> m_minPoint;
    std::array<float, 3> m_maxPoint;
};

struct Aabb2
{
private:
    std::array<float, 3> m_center;
    float m_extent;

public:
    DefGetter(m_center, Center)
    DefGetter(m_extent, Extent)
};